 /**
  * 对话框工具类
  * 
  * HHJsLib 对话框基础类库 
  * 
  * @author xjiujiu <xjiujiu@foxmail.com>
  * @package dialog
  * @since 	1.0.0
  */
(function($) {
    var HHDialog    = {

        /**
         * @var Object _defOptions 对话框默认配置
         */
        _defOptions: {
            title: '系统提示',
            content: '',
            type: '',
            lock: true,
            ok: true 
        },

        /**
         * 加载依赖文件
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String 第三方插件的位置
         * @param  Object options 当前的系三方配置
         * @return HHDialog 当前的弹框对象
         */
        depend: function(baseUrl, options) {
        	this.requireCss([baseUrl + "/artDialog/skins/opera.css"]);
        	this.requireJs([baseUrl + "/artDialog/jquery.artDialog.js"]);
        },

        /**
         * 信息提醒弹框
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 提示信息
         * @param  Object callback 回调函数
         */
        info: function(msg, callback) {
            this._dialog(msg, 'info', {ok: callback});
        },

        /**
         * 提示当前的信息
         * 
         * 用法:
         * <code>
         *    HHJsLib.alert("提示信息");
         * </code>
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 当前用户的提示信息
         * @param  Object callback 回调函数
         */
        alert: function(msg, callback) {
            this._dialog(msg, '', {ok: callback});
        },

        /**
         * 提示当前的信息,没有任何的按钮
         * 
         * 用法:
         * <code>
         *    HHJsLib.warn("提示信息");
         * </code>
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 当前用户的警告信息
         * @param  Object callback 回调函数
         */
        warn: function(msg, callback) {
            this._dialog(msg, 'warning', {ok: callback});
        },

        /**
         * 错误提示消息
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 错误信息
         * @param  Object callback 回调函数
         */
        error: function(msg, callback) {
            this._dialog(msg, 'error', {ok: callback});
        },

        /**
         * 成功的提示信息 
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 需要提示的信息
         * @param  Object callback 回调函数
         */
        succeed: function(msg, callback) {
            this._dialog(msg, 'succeed', {ok: callback});
        },

        /**
         * 询问弹框
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 提示信息 
         * @param  callback 回调对象
         */
        confirm: function(msg, callback) {
            this._dialog(msg, 'question', {ok: callback});
        },

        /**
         * 内部使用的公用弹框方法 
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String msg 提示消息
         * @param  String type 提示状态图标
         * @param  Object options 自定义配置
         */
        _dialog: function(msg, type, options) {
            for(var ele in this._defOptions) {
                if(typeof options[ele] != 'undefined') {
                    continue;
                }
                options[ele]    = this._defOptions[ele];
            }
            options['icon']     = type;
            options['content']  = msg;
            art.dialog(options);
        },
        
        /**
         * 自定义对话框
         * 
         * @desc
         * 
         * @author xjiujiu <xjiujiu@foxmail.com>
         * @access public
         * @param  String content 当前弹框显示的内容
         * @param  Object callback 回调函数
         * @return void
         */
        dialog: function(content, options) {
            this._dialog(content, '', options);
        }

    };
    //扩展到HHJsLib库中
    HHJsLib.extend(HHDialog);
})(jQuery);

